package com.lyy.system.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lyy.common.utils.*;
import com.lyy.common.utils.excel.ExcelUtils;
import com.lyy.common.utils.jxls.JxlsExport;
import com.lyy.system.pojo.SysUser;
import com.lyy.system.service.SysUserService;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;

/**
 * 用户表(SysUser)表控制层
 *
 * @author Yw
 * @since 2021-02-01 17:12:02
 */
@RestController
@RequestMapping("/sysUser")
public class SysUserController {
    /**
     * 服务对象
     */
    @Resource
    private SysUserService sysUserService;

    /**
     * 创建用户表
     * /sysUser/createSysUser
     * { "username":"用户名,手机号码",  "password":"密码",  "salt":"盐",  "name":"姓名",  "headImgUrl":"头像",  "idcard":"身份证",  "userFlag":"是否启用，0否，1是",  "loginTime":"上次登录时间",  "createDate":"创建时间",  "remarks":"备注信息",  "delFlag":"是否删除,0否,1是",  "createBy":"创建人",  "updateBy":"修改人",  "updateDate":"修改时间" }
     *
     * @param username   用户名,手机号码
     * @param password   密码
     * @param salt       盐
     * @param name       姓名
     * @param headImgUrl 头像
     * @param idcard     身份证
     * @param userFlag   是否启用，0否，1是
     * @param loginTime  上次登录时间
     * @param createDate 创建时间
     * @param remarks    备注信息
     * @param delFlag    是否删除,0否,1是
     * @param createBy   创建人
     * @param updateBy   修改人
     * @param updateDate 修改时间
     * @return
     */
    @PostMapping("/createSysUser")
    public Map<String, Object> createSysUser(SysUser sysUser) {
        AssertUtils.notNull(sysUser.getUsername(), "用户名,手机号码不能为空");
        AssertUtils.notNull(sysUser.getPassword(), "密码不能为空");
        AssertUtils.notNull(sysUser.getSalt(), "盐不能为空");
        AssertUtils.notNull(sysUser.getName(), "姓名不能为空");
        AssertUtils.notNull(sysUser.getHeadImgUrl(), "头像不能为空");
        AssertUtils.notNull(sysUser.getIdcard(), "身份证不能为空");
        AssertUtils.notNull(sysUser.getUserFlag(), "是否启用，0否，1是不能为空");
        AssertUtils.notNull(sysUser.getLoginTime(), "上次登录时间不能为空");
        AssertUtils.notNull(sysUser.getCreateDate(), "创建时间不能为空");
        AssertUtils.notNull(sysUser.getRemarks(), "备注信息不能为空");
        AssertUtils.notNull(sysUser.getDelFlag(), "是否删除,0否,1是不能为空");
        AssertUtils.notNull(sysUser.getCreateBy(), "创建人不能为空");
        AssertUtils.notNull(sysUser.getUpdateBy(), "修改人不能为空");
        AssertUtils.notNull(sysUser.getUpdateDate(), "修改时间不能为空");
        sysUserService.createSysUser(sysUser);
        return ResultUtils.getResult(ResultInfo.SUCCESS);
    }

    /**
     * 根据主键修改用户表
     * /sysUser/updateSysUser
     * { "id":"用户id",  "username":"用户名,手机号码",  "password":"密码",  "salt":"盐",  "name":"姓名",  "headImgUrl":"头像",  "idcard":"身份证",  "userFlag":"是否启用，0否，1是",  "loginTime":"上次登录时间",  "createDate":"创建时间",  "remarks":"备注信息",  "delFlag":"是否删除,0否,1是",  "createBy":"创建人",  "updateBy":"修改人",  "updateDate":"修改时间" }
     *
     * @param id         用户id
     * @param username   用户名,手机号码
     * @param password   密码
     * @param salt       盐
     * @param name       姓名
     * @param headImgUrl 头像
     * @param idcard     身份证
     * @param userFlag   是否启用，0否，1是
     * @param loginTime  上次登录时间
     * @param createDate 创建时间
     * @param remarks    备注信息
     * @param delFlag    是否删除,0否,1是
     * @param createBy   创建人
     * @param updateBy   修改人
     * @param updateDate 修改时间
     * @return
     */
    @PutMapping("/updateSysUser")
    public Map<String, Object> updateSysUser(SysUser sysUser) {
        AssertUtils.notNull(sysUser.getId(), "用户id不能为空");
//        AssertUtils.notNull(sysUser.getUsername(), "用户名,手机号码不能为空");
//        AssertUtils.notNull(sysUser.getPassword(), "密码不能为空");
//        AssertUtils.notNull(sysUser.getSalt(), "盐不能为空");
//        AssertUtils.notNull(sysUser.getName(), "姓名不能为空");
//        AssertUtils.notNull(sysUser.getHeadImgUrl(), "头像不能为空");
//        AssertUtils.notNull(sysUser.getIdcard(), "身份证不能为空");
//        AssertUtils.notNull(sysUser.getUserFlag(), "是否启用，0否，1是不能为空");
//        AssertUtils.notNull(sysUser.getLoginTime(), "上次登录时间不能为空");
//        AssertUtils.notNull(sysUser.getCreateDate(), "创建时间不能为空");
//        AssertUtils.notNull(sysUser.getRemarks(), "备注信息不能为空");
//        AssertUtils.notNull(sysUser.getDelFlag(), "是否删除,0否,1是不能为空");
//        AssertUtils.notNull(sysUser.getCreateBy(), "创建人不能为空");
//        AssertUtils.notNull(sysUser.getUpdateBy(), "修改人不能为空");
//        AssertUtils.notNull(sysUser.getUpdateDate(), "修改时间不能为空");
        sysUserService.updateSysUser(sysUser);
        return ResultUtils.getResult(ResultInfo.SUCCESS);
    }

    /**
     * 根据主键获取单个用户表
     * /sysUser/getSysUser
     * { "id":"用户id" }
     *
     * @param id 用户id
     * @return
     */
    @GetMapping("/getSysUser")
    public Map<String, Object> getSysUser(SysUser sysUser) {
        AssertUtils.notNull(sysUser.getId(), "用户id不能为空");
        SysUser entity = sysUserService.getSysUser(sysUser);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("sysUser", entity);
        return ResultUtils.getResult(ResultInfo.SUCCESS, "", map);
    }


    /**
     * 根据主键删除用户表
     * /sysUser/deleteSysUser
     * { "id":"用户id" }
     *
     * @param id 用户id
     * @return
     */
    @DeleteMapping("/deleteSysUser")
    public Map<String, Object> deleteSysUser(SysUser sysUser) {
        AssertUtils.notNull(sysUser.getId(), "用户id不能为空");
        sysUserService.deleteSysUser(sysUser);
        return ResultUtils.getResult(ResultInfo.SUCCESS);
    }

    /**
     * 查询用户表列表
     * /sysUser/selectSysUserList
     * { "id":"用户id",  "username":"用户名,手机号码",  "password":"密码",  "salt":"盐",  "name":"姓名",  "headImgUrl":"头像",  "idcard":"身份证",  "userFlag":"是否启用，0否，1是",  "loginTime":"上次登录时间",  "createDate":"创建时间",  "remarks":"备注信息",  "delFlag":"是否删除,0否,1是",  "createBy":"创建人",  "updateBy":"修改人",  "updateDate":"修改时间" }
     *
     * @param id         用户id
     * @param username   用户名,手机号码
     * @param password   密码
     * @param salt       盐
     * @param name       姓名
     * @param headImgUrl 头像
     * @param idcard     身份证
     * @param userFlag   是否启用，0否，1是
     * @param loginTime  上次登录时间
     * @param createDate 创建时间
     * @param remarks    备注信息
     * @param delFlag    是否删除,0否,1是
     * @param createBy   创建人
     * @param updateBy   修改人
     * @param updateDate 修改时间
     * @return
     */
    @GetMapping("/selectSysUserList")
    public Map<String, Object> selectSysUserList(SysUser sysUser) {
        List<SysUser> sysUsers = sysUserService.selectSysUserList(sysUser);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("sysUsers", sysUsers);
        return ResultUtils.getResult(ResultInfo.SUCCESS, "", map);
    }

    /**
     * 查询用户表列表
     * /sysUser/selectSysUserCount
     * { "id":"用户id", "username":"用户名,手机号码", "password":"密码", "salt":"盐", "name":"姓名", "headImgUrl":"头像", "idcard":"身份证", "userFlag":"是否启用，0否，1是", "loginTime":"上次登录时间", "createDate":"创建时间", "remarks":"备注信息", "delFlag":"是否删除,0否,1是", "createBy":"创建人", "updateBy":"修改人", "updateDate":"修改时间"}
     *
     * @param id         用户id
     * @param username   用户名,手机号码
     * @param password   密码
     * @param salt       盐
     * @param name       姓名
     * @param headImgUrl 头像
     * @param idcard     身份证
     * @param userFlag   是否启用，0否，1是
     * @param loginTime  上次登录时间
     * @param createDate 创建时间
     * @param remarks    备注信息
     * @param delFlag    是否删除,0否,1是
     * @param createBy   创建人
     * @param updateBy   修改人
     * @param updateDate 修改时间
     * @return
     */
    @GetMapping("/selectSysUserCount")
    public Map<String, Object> selectSysUserCount(SysUser sysUser) {
        int count = sysUserService.selectSysUserCount(sysUser);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("count", count);
        return ResultUtils.getResult(ResultInfo.SUCCESS, "", map);
    }


    /**
     * 查询用户表列表分页
     * /sysUser/selectSysUserPage
     * { "id":"用户id",  "username":"用户名,手机号码",  "password":"密码",  "salt":"盐",  "name":"姓名",  "headImgUrl":"头像",  "idcard":"身份证",  "userFlag":"是否启用，0否，1是",  "loginTime":"上次登录时间",  "createDate":"创建时间",  "remarks":"备注信息",  "delFlag":"是否删除,0否,1是",  "createBy":"创建人",  "updateBy":"修改人",  "updateDate":"修改时间" ,"pageNum":"页码","pageSize":"条数"}
     *
     * @param pageNum    页码
     * @param pageSize   页数
     * @param id         用户id
     * @param username   用户名,手机号码
     * @param password   密码
     * @param salt       盐
     * @param name       姓名
     * @param headImgUrl 头像
     * @param idcard     身份证
     * @param userFlag   是否启用，0否，1是
     * @param loginTime  上次登录时间
     * @param createDate 创建时间
     * @param remarks    备注信息
     * @param delFlag    是否删除,0否,1是
     * @param createBy   创建人
     * @param updateBy   修改人
     * @param updateDate 修改时间
     * @return
     */
    @GetMapping("/selectSysUserPage")
    public Map<String, Object> selectSysUserPage(SysUser sysUser, Integer pageNum, Integer pageSize) {
        AssertUtils.notNull(pageNum, "页码不能为空!");
        AssertUtils.notNull(pageSize, "条数不能为空!");
        PageHelper.startPage(pageNum, pageSize);
        List<SysUser> sysUsers = sysUserService.selectSysUserList(sysUser);
        PageInfo<SysUser> pageInfo = new PageInfo<>(sysUsers);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("pageInfo", pageInfo);
        return ResultUtils.getResult(ResultInfo.SUCCESS, "", map);
    }


    /**
     * 导出用户表
     * /sysUser/exportSysUserExcel
     * { "id":"用户id",  "username":"用户名,手机号码",  "password":"密码",  "salt":"盐",  "name":"姓名",  "headImgUrl":"头像",  "idcard":"身份证",  "userFlag":"是否启用，0否，1是",  "loginTime":"上次登录时间",  "createDate":"创建时间",  "remarks":"备注信息",  "delFlag":"是否删除,0否,1是",  "createBy":"创建人",  "updateBy":"修改人",  "updateDate":"修改时间" }
     *
     * @param id         用户id
     * @param username   用户名,手机号码
     * @param password   密码
     * @param salt       盐
     * @param name       姓名
     * @param headImgUrl 头像
     * @param idcard     身份证
     * @param userFlag   是否启用，0否，1是
     * @param loginTime  上次登录时间
     * @param createDate 创建时间
     * @param remarks    备注信息
     * @param delFlag    是否删除,0否,1是
     * @param createBy   创建人
     * @param updateBy   修改人
     * @param updateDate 修改时间
     * @return
     */
    @GetMapping("/exportSysUserExcel")
    public void exportSysUserExcel(HttpServletRequest request, HttpServletResponse response, SysUser sysUser) {
        List<SysUser> sysUsers = sysUserService.selectSysUserList(sysUser);
        if (CommonUtils.isNotEmpty(sysUsers)) {
            List<String> titles = new ArrayList<>();
            titles.add(" 序号 ");
            titles.add(" 用户名,手机号码 ");
            titles.add(" 密码 ");
            titles.add(" 盐 ");
            titles.add(" 姓名 ");
            titles.add(" 头像 ");
            titles.add(" 身份证 ");
            titles.add(" 是否启用，0否，1是 ");
            titles.add(" 上次登录时间 ");
            titles.add(" 创建时间 ");
            titles.add(" 备注信息 ");
            titles.add(" 是否删除,0否,1是 ");
            titles.add(" 创建人 ");
            titles.add(" 修改人 ");
            titles.add(" 修改时间 ");
            List<List<String>> values = new ArrayList<>();
            int k = 0;
            for (SysUser entity : sysUsers) {
                List<String> value = new ArrayList<>();
                value.add((++k) + "");
                value.add(entity.getUsername());
                value.add(entity.getPassword());
                value.add(entity.getSalt());
                value.add(entity.getName());
                value.add(entity.getHeadImgUrl());
                value.add(entity.getIdcard());
                value.add(entity.getUserFlag());
                value.add(DateUtils.formatDate(entity.getLoginTime()));
                value.add(DateUtils.formatDate(entity.getCreateDate()));
                value.add(entity.getRemarks());
                value.add(entity.getDelFlag());
                value.add(entity.getCreateBy());
                value.add(entity.getUpdateBy());
                value.add(DateUtils.formatDate(entity.getUpdateDate()));
                values.add(value);
            }
            String address = Constants.address + "/wisdom/template/customTemplate.xls";
            String excelName = "用户表.xls";
            Map<String, Object> beans = new HashMap<>();
            beans.put("titles", titles);
            beans.put("values", values);
            beans.put("date", DateUtils.formatDateTime(new Date()));
            JxlsExport.export(request, response, beans, excelName, address);
        }
    }

    /**
     * 根据主键逻辑删除用户表
     * /sysUser/deleteSysUserLogic
     * { "id":"用户id" }
     *
     * @param id 用户id
     * @return
     */
    @PutMapping("/deleteSysUserLogic")
    public Map<String, Object> deleteSysUserLogic(SysUser sysUser) {
        sysUser.setDelFlag("1");
        sysUserService.updateSysUser(sysUser);
        return ResultUtils.getResult(ResultInfo.SUCCESS);
    }

    /**
     * /sysUser/importSysUserExcel  从excel表导入用户表
     * 导入excel文件
     * {"file":"excel文件"}
     *
     * @param file excel文件
     */
    @PostMapping("/importSysUserExcel")
    public Map<String, Object> importSysUserExcel(MultipartFile file) {
        if (file.isEmpty()) {
            return ResultUtils.getResult(ResultInfo.UPLOAD_NOT_EXISTS);
        }
        // 文件名称
        String fileName = file.getOriginalFilename();
        if (StringUtils.isBlank(fileName)) {
            return ResultUtils.getResult(ResultInfo.UPLOAD_NOT_EXISTS);
        }
        try {
            InputStream inputStream = file.getInputStream();
            //创建工作簿
            Workbook wb = null;
            //判断表格格式
            if (fileName.toLowerCase().endsWith("xls")) {
                wb = new HSSFWorkbook(inputStream);
            } else if (fileName.toLowerCase().endsWith("xlsx")) {
                wb = new XSSFWorkbook(inputStream);
            } else {
                return ResultUtils.getResult(ResultInfo.UPLOAD_TYPE_ERROR);
            }
            List<SysUser> sysUsers = new ArrayList<>();
            List<Map<String, String>> resultMap = new ArrayList<>();
            Map<String, String> result = null;
            SysUser sysUser = null;
            // 获取工作表的第一个Sheet
            Sheet hssfSheet = wb.getSheetAt(0);
            if (hssfSheet != null) {
                int index = -1;
                for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
                    Row hssfRow = hssfSheet.getRow(rowNum);
                    if (hssfRow != null) {
                        if (ExcelUtils.getValue(hssfRow.getCell(0)).contains("用户名,手机号码") &&
                                ExcelUtils.getValue(hssfRow.getCell(1)).contains("密码") &&
                                ExcelUtils.getValue(hssfRow.getCell(2)).contains("盐") &&
                                ExcelUtils.getValue(hssfRow.getCell(3)).contains("姓名") &&
                                ExcelUtils.getValue(hssfRow.getCell(4)).contains("头像") &&
                                ExcelUtils.getValue(hssfRow.getCell(5)).contains("身份证") &&
                                ExcelUtils.getValue(hssfRow.getCell(6)).contains("是否启用，0否，1是") &&
                                ExcelUtils.getValue(hssfRow.getCell(7)).contains("上次登录时间") &&
                                ExcelUtils.getValue(hssfRow.getCell(8)).contains("创建时间") &&
                                ExcelUtils.getValue(hssfRow.getCell(9)).contains("备注信息") &&
                                ExcelUtils.getValue(hssfRow.getCell(10)).contains("是否删除,0否,1是") &&
                                ExcelUtils.getValue(hssfRow.getCell(11)).contains("创建人") &&
                                ExcelUtils.getValue(hssfRow.getCell(12)).contains("修改人") &&
                                ExcelUtils.getValue(hssfRow.getCell(13)).contains("修改时间")) {
                            index = ++rowNum;
                            break;
                        }
                    }
                }

                if (index == -1) {
                    result = new HashMap<>();
                    result.put("reason", "excel模板不正确");
                    result.put("status", "1");
                    resultMap.add(result);
                    Map<String, Object> map = new HashMap<>();
                    map.put("resultMap", resultMap);
                    return ResultUtils.getResult(ResultInfo.SUCCESS, "", map);
                }

                // 循环行Row
                for (int rowNum = index; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
                    Row hssfRow = hssfSheet.getRow(rowNum);
                    if (hssfRow != null) {
                        if (StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(0))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(1))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(2))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(3))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(4))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(5))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(6))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(7))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(8))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(9))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(10))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(11))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(12))) &&
                                StringUtils.isBlank(ExcelUtils.getValue(hssfRow.getCell(13)))) {
                            continue;
                        }
                        sysUser = new SysUser();
                        String username = ExcelUtils.getValue(hssfRow.getCell(0));//用户名,手机号码
                        if (StringUtils.isBlank(username)) {
                            result = new HashMap<>();
                            result.put("reason", "用户名,手机号码不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setUsername(username);
                        String password = ExcelUtils.getValue(hssfRow.getCell(1));//密码
                        if (StringUtils.isBlank(password)) {
                            result = new HashMap<>();
                            result.put("reason", "密码不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setPassword(password);
                        String salt = ExcelUtils.getValue(hssfRow.getCell(2));//盐
                        if (StringUtils.isBlank(salt)) {
                            result = new HashMap<>();
                            result.put("reason", "盐不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setSalt(salt);
                        String name = ExcelUtils.getValue(hssfRow.getCell(3));//姓名
                        if (StringUtils.isBlank(name)) {
                            result = new HashMap<>();
                            result.put("reason", "姓名不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setName(name);
                        String headImgUrl = ExcelUtils.getValue(hssfRow.getCell(4));//头像
                        if (StringUtils.isBlank(headImgUrl)) {
                            result = new HashMap<>();
                            result.put("reason", "头像不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setHeadImgUrl(headImgUrl);
                        String idcard = ExcelUtils.getValue(hssfRow.getCell(5));//身份证
                        if (StringUtils.isBlank(idcard)) {
                            result = new HashMap<>();
                            result.put("reason", "身份证不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setIdcard(idcard);
                        String userFlag = ExcelUtils.getValue(hssfRow.getCell(6));//是否启用，0否，1是
                        if (StringUtils.isBlank(userFlag)) {
                            result = new HashMap<>();
                            result.put("reason", "是否启用，0否，1是不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setUserFlag(userFlag);
                        String loginTime = ExcelUtils.getValue(hssfRow.getCell(7));//上次登录时间
                        if (StringUtils.isBlank(loginTime)) {
                            result = new HashMap<>();
                            result.put("reason", "上次登录时间不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setLoginTime(DateUtils.formatDate(loginTime));
                        String createDate = ExcelUtils.getValue(hssfRow.getCell(8));//创建时间
                        if (StringUtils.isBlank(createDate)) {
                            result = new HashMap<>();
                            result.put("reason", "创建时间不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setCreateDate(DateUtils.formatDate(createDate));
                        String remarks = ExcelUtils.getValue(hssfRow.getCell(9));//备注信息
                        if (StringUtils.isBlank(remarks)) {
                            result = new HashMap<>();
                            result.put("reason", "备注信息不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setRemarks(remarks);
                        String delFlag = ExcelUtils.getValue(hssfRow.getCell(10));//是否删除,0否,1是
                        if (StringUtils.isBlank(delFlag)) {
                            result = new HashMap<>();
                            result.put("reason", "是否删除,0否,1是不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setDelFlag(delFlag);
                        String createBy = ExcelUtils.getValue(hssfRow.getCell(11));//创建人
                        if (StringUtils.isBlank(createBy)) {
                            result = new HashMap<>();
                            result.put("reason", "创建人不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setCreateBy(createBy);
                        String updateBy = ExcelUtils.getValue(hssfRow.getCell(12));//修改人
                        if (StringUtils.isBlank(updateBy)) {
                            result = new HashMap<>();
                            result.put("reason", "修改人不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setUpdateBy(updateBy);
                        String updateDate = ExcelUtils.getValue(hssfRow.getCell(13));//修改时间
                        if (StringUtils.isBlank(updateDate)) {
                            result = new HashMap<>();
                            result.put("reason", "修改时间不能为空！");
                            result.put("status", "1");
                            resultMap.add(result);
                            continue;
                        }
                        sysUser.setUpdateDate(DateUtils.formatDate(updateDate));
                        sysUsers.add(sysUser);
                    }
                }
                if (CommonUtils.isNotEmpty(sysUsers)) {
                    resultMap.addAll(sysUserService.importSysUserExcel(sysUsers));
                }
            }
            inputStream.close();
            Map<String, Object> map = new HashMap<>();
            map.put("resultMap", resultMap);
            return ResultUtils.getResult(ResultInfo.SUCCESS, "", map);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtils.getResult(ResultInfo.ERROR);
        }
        return ResultUtils.getResult(ResultInfo.FAILED);
    }
}